package ua.yandex.skipasssystem;

import ua.yandex.skipasssystem.skipass.SkiPass;
import ua.yandex.skipasssystem.skipass.SkiPassMaker;

import java.time.LocalDateTime;

public interface SkiPassSystemInterface {
    SkiPassMaker getSkiPassMaker();

    boolean validateSkiPass(SkiPass skiPass,
                            LocalDateTime dateTime);

    int getNumberOfDeniesByType(Class skiPassType);

    int getNumberOfPermissionsByType(Class skiPassType);

    SkiPass getSkiPass(long id);

    long getNewSkiPassId();

    void addSkiPass(SkiPass skiPass);

    void deactivateSkiPass(long id);

    int getAllNumberOfPermissions();

    int getAllNumberOfDenies();
}
